package mysql.v1;

import java.sql.*;

/**JDBC可以完成CURD操作【增加、修改、删除】
* 使用 JDBC规范 查询操作
* 1.加载驱动：注册MySQL驱动
* 2.准备SQL：连接成功mysql服务器
* 3.发送SQL：执行查询操作
* 4.查询结果集：ResultSet 接口
* 5.处理结果集：显示查询数据
* 6.关闭资源
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 1.注册Mysql驱动--JAVA---Driver接口
        Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL，同时准备发送sql工具类--JAVA--DriverManager接口
        String username="root";
        String password="";
        String url="jdbc:mysql://localhost:3306/mi?characterEncoding=UTF-8";
        //链接成功Mysql sql工具类--Java--DriverManager接口
        //DriverManager接口-->getConnection方法：传入3参数
        // 顺利打印Connection对象：代表JDBC链接Mysql成功
        Connection con=
        DriverManager.getConnection(url,username,password);
        //打桩：测试是否成功
        System.out.println("测试Java链接数据库对象："+con);
        //3.发送SQL：查询mi库-->book表数据
        String sql="select * from book";
        //通过链接成功Connection对象.createStatement()
        //createStatement()链接数据库，返回Statement对象
        //Statement对象--Java--链接数据库并且返回Statement对象
        //Statement对象：执行静态sql--具备CRUD功能：增删改查
        Statement st=con.createStatement();
        //4.executeUpdate(sql) 增删改 操作 使用方法 返回int类型
        //                                     成功几条sql
        //executeQuery(sql) 查询 操作 使用方法 返回ResultSet接口
        //                                  查询结果失败
        ResultSet rs=st.executeQuery(sql);
        //ResultSet对象--Java--查询到的数据保存对象
        //5.处理结果集：显示book表所有记录数【数据】
        System.out.println("-----查询book表结果如下-------");
        //显示数据---book表哪些字段
        //取【显示】7个字段 类型 mysql int[整型] varchar[字符串]
        //取【显示】7个字段 类型 java int[整型] String[字符串]
        //ResultSet对象提供方法 next() 依次取出每个字段记录【数据】
        //前提：不知道多少字段：一次数据--while
        while(rs.next()){ //取出每个字段记录【数据】
            int id=rs.getInt("id");
        //getString("字段名") 取字段名下类型
        String author=rs.getString("author");
        String name=rs.getString("name");
        int price=rs.getInt("price");
        String date=rs.getString("date");
        int number=rs.getInt("number");
        String discount=rs.getString("discount");
        //打桩：打印作者记录
            System.out.println("作者："+author+"打折情况"+discount);
        }
    
    }
}
